ascii基础 getline

题目 字符串的反码

image-8a18e910

思路分析

emm还以为发现了什么不得了的新东西

只是这里定义的 并不存在这种反码

image-a1f24f4f

这里两个注意点

用getline读入 防止空格 getline

翻转使用一种映射的方式 先把字符映射成0~25 这样翻转直接就可以用25去减

ascii码的基本功

image-ac7bc18e

代码实现

#include<bits/stdc++.h>

using namespace std;

string s;

int main()

{

    //用getline读入 防止有空格

    while(getline(cin,s),s!="!"){

        for(auto &chr:s){

            if(chr>='a' && chr<='z')

                //chr-'a' 将字符映射成0~25

                //翻转就很简单了 用25减去这个映射的值 25-(chr-'a')

                //记得还原回去25-(chr-'a')+'a'

                chr=25-(chr-'a')+'a';

            else if(chr>='A' && chr<='Z')

                chr=25-(chr-'A')+'A';

        }

        cout<<s<<endl;

    }

    return 0;

}

同类题型

视频讲解


⬅️ next_permutation 🏠 00-刷题理模型 ➡️ getline